1. Field of the Invention
The present invention relates to a non-volatile semiconductor device, and more particularly to a non-volatile semiconductor storage unit having a correction coding circuit.
2. Description of the Related Art
In recent years, a programmable read only memory (PROM), which is one of non-volatile semiconductor devices, includes an error correcting code circuit (ECC circuit). The ECC circuit is a circuit that conducts, when an error occurs in data written in a memory cell, an error correction so that correct data is read out.
In general, it is assumed that an error in the data written in the memory cell is generated for the following three causes. A first cause is that a defect occurs in the memory cell at the stage of manufacturing a PROM. A second cause is that when data is written into the PROM, the data fails to be written into the memory cell. A third cause is that the data correctly written into the memory cell becomes defective thereafter. All of the data errors occurring for these three causes can be remedied by the ECC circuit. The first and second causes of these three causes occur at the time of manufacturing the PROM. If the ECC circuit of the PROM functions for the data errors occurring for these first and second causes, the ECC circuit can no longer conduct data correction with respect to new data error, or becomes an ECC that is reduced in the number of data which can be corrected. There arises such a problem that the PROM low in reliability is manufactured as a product.
Therefore, there is required to detect and remove the PROM where a defect occurs in data written into the memory cell at the manufacture stage or writing stage. Up to now, the check of data written into the memory cell is conducted by a method in which written data is read out to the exterior and it is examined whether the data is correctly written or not. The ECC built-in PROM includes, in addition to a memory cell that stores data, a parity memory cell that stores parity data which is produced from the stored data through calculation. In other words, it is necessary to read out the parity data to the exterior and check it.
Because the parity data is data which is automatically internally calculated from data to be written, when the parity data is checked externally, it is necessary to additionally provide the expected value of the parity data. Hence, the check of the parity data and the provision of the expected value are required, thereby leading to a problem that an excessive work is necessary. Furthermore, in order to read out data to the external and check it, there arises a problem that a PROM writer for a normal PROM cannot be used because a specific function is required.